<?php //
include_once("Conexion.php");

//Declaracion
class M_Persona {
    
    private $id_persona;
    private $nombre;
    private $apellidoPaterno;
    private $apellidoMaterno;
    private $dni;
    private $id_tipopersona;
    
     //Metodo utilizado para obtener todos los Roles
    function listarPersonas_Todos() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " SELECT * FROM tbl_persona where eliminado = false ";
        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn,$sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
            pg_free_result($rs);
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_free_result($rs);
            } catch (exception $e) {

            }
            try {
                pg_close($cn);
            } catch (exception $e) {

            }
        }
        return $registros;
    }
    
      //Metodo utilizado para insertar una Rol en la base de datos
    function insertPersona() {
       
      
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Comenzamos la transaccion
          //  pg_query($cn,"BEGIN");
            //Elaboramos la sentencia
            $sql = " insert into tbl_persona (nombres, apellido_paterno, apellido_materno, dni,eliminado,id_tipo_persona) 
            values ('$this->nombre', '$this->apellidoPaterno', '$this->apellidoMaterno','$this->dni',false,$this->id_tipopersona)";
            //Ejecutamos la sentencia
            $result = pg_query($cn,$sql);
            if (!$result) {
                //Si no obtiene resultados anulamos la transaccion
              //  pg_query($cn,"ROLLBACK");
                $rpta = false;
            } else {
                //Si obtiene resultados confirmamos la transaccion
               // pg_query($cn,"COMMIT");
                $rpta = true;
            }
            //Cerramos la conexion
            pg_close($cn);
        
        return $rpta;
    }
      //metodo utilizado para eliminar un rol
     function deletePersona() {

            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Comenzamos la transaccion
            //mysql_query("BEGIN", $cn);
            //Elaboramos la sentencia
           $sql = " update tbl_persona set eliminado = true  where id_persona = $this->id_persona";
          
            //Ejecutamos la sentencia
            $result = pg_query($cn,$sql);
           
            if (!$result) {
                //Si no obtiene resultados anulamos la transaccion
            //    mysql_query("ROLLBACK", $cn);
                $rpta = false;
            } else {
                //Si obtiene resultados confirmamos la transaccion
              //  mysql_query("COMMIT", $cn);
                $rpta = true;
            }
            //Cerramos la conexion
            pg_close($cn);
        
        
        return $rpta;
    }
      //Metodo utilizado para actualizar un ROL
    function actualizarPersona() {

            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Comenzamos la transaccion
            //mysql_query("BEGIN", $cn);
            //Elaboramos la sentencia
            $sql="UPDATE tbl_persona
   SET  nombres='$this->nombre', apellido_paterno='$this->apellidoPaterno', 
                    apellido_materno='$this->apellidoMaterno', dni='$this->dni',
                    id_tipo_persona= $this->id_tipopersona
 WHERE id_persona=$this->id_persona";
         
            //Ejecutamos la sentencia
            $result = pg_query($cn,$sql);
           
            if (!$result) {
                //Si no obtiene resultados anulamos la transaccion
            //    mysql_query("ROLLBACK", $cn);
                $rpta = false;
            } else {
                //Si obtiene resultados confirmamos la transaccion
              //  mysql_query("COMMIT", $cn);
                $rpta = true;
            }
            //Cerramos la conexion
            pg_close($cn);
        
        
        return $rpta;
    }
    
    function searchPersona() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " SELECT * FROM tbl_persona 
            where id_persona=$this->id_persona and eliminado=false ";
        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn, $sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
            pg_free_result($rs);
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_free_result($rs);
            } catch (exception $e) {
                
            }
            try {
                pg_close($cn);
            } catch (exception $e) {
                
            }
        }
        return $registros;
    }
    
        //Get y Set de la clase
        public function getId_Persona(){
		return $this->id_persona;
	}

	public function setId_Persona($id_persona){
		$this->id_persona = $id_persona;
	}

	public function getNombre(){
		return $this->nombre;
	}

	public function setNombre($nombre){
		$this->nombre = $nombre;
	}

	public function getApellidoPaterno(){
		return $this->apellidoPaterno;
	}

	public function setApellidoPaterno($apellidoPaterno){
		$this->apellidoPaterno = $apellidoPaterno;
	}

	public function getApellidoMaterno(){
		return $this->apellidoMaterno;
	}

	public function setApellidoMaterno($apellidoMaterno){
		$this->apellidoMaterno = $apellidoMaterno;
	}

	public function getDni(){
		return $this->dni;
	}

	public function setDni($dni){
		$this->dni = $dni;
	}
        
	public function getId_TipoPersona(){
		return $this->id_tipopersona;
	}

	public function setId_TipoPersona($id_tipopersona){
		$this->id_tipopersona = $id_tipopersona;
	}
}
?>